Getting more information about sliders
Note: text in square brackets [] denotes text spoken by the screenreader.
Welcome to this tutorial about how to get the information you want from slider controls.
In the previous tutorial, we saw how AT Prime lets you monitor changes in the text of an object. One of the examples shown was how to monitor the recording level changes in the audio application Audacity. This tutorial demonstrates a special implementation of AT Prime’s ability to monitor changes in objects and, again, I will be using Audacity to show you how it works.
This tutorial is about slider controls. Slider controls can be used in any application to let you select from within a range of values but, in most cases, we come across sliders when using media applications and especially in audio and music production applications.
To be fully accessible and useful, the screenreader should be able to speak the changes in the values as the slider is moved. When a slider does something simple, like adjusting the playback volume when you can hear the effect of the changes as you move the slider, it isn't necessary to have the screenreader read the volume level in decibels. But in other cases, you might not hear the changes immediately as you move the slider and it is here that you would benefit from spoken feedback from the screenreader. Of course, this kind of spoken feedback is absolutely required where the slider changes values which have nothing to do with audio, such as changing the level of security on your computer.
The problem is that not all sliders are fully accessible in the way they provide information to screenreaders. For these sliders, you might hear irrelevant information when you move them or even nothing at all. Let’s look at a good example of sliders which don’t provide relevant information when you move them.
I have a track loaded in Audacity and I'm going to open the compressor plugin which comes with Audacity as this plugin has quite a few sliders. AT Prime is suspended at the moment so we can hear what the screenreader itself reports in relation to the sliders in the compressor window.
As soon as I start to tab, I come to the Threshold slider.
[Threshold slider 84]
The current value of the slider is reported. I’ll tab quickly through the window to see what other sliders we have.
[Noise floor slider 41]
That’s the Noise Floor slider, which has a different value,
[Ratio slider 10]
as does the ratio slider.
[Attack time slider 0. Release time slider 0]
The Attack and Release time sliders are both at zero at the moment.
[Make up gain for 0dB after compressing, checkbox checked. Compress based on peaks, checkbox not checked. Manage button. Cancel button. OK button. Threshold slider 84]
As I continue to tab, it’s clear that there are no more sliders in the window.
So, I’m back at the Threshold slider with its current value of 84. 84 what? Normally, when you use an audio compressor, you want to set the threshold to a certain number of decibels below 0dB so I’m not quite sure what 84 represents here. I’m going to press the down arrow to see if this value changes.
[86, 88]
Hang on, the value is going up instead of down. So, I’ll press the up arrow:
[86, 84]
and the value comes down again. I’m confused. I would normally expect the up arrow to increase the value and the down arrow to decrease it. Pressing the right arrow like this:
[86, 88]
this is increasing the value
[86, 84]
and the left arrow is now decreasing it. This suggests to me that the slider might be horizontal on the screen but it’s a bit weird that pressing the up arrow actually decreases the value. If you don’t pay attention, you might actually be changing the value of a slider in the opposite direction to that which you intend.
To see what the minimum and maximum values are of a slider, you can press the Home and End keys. Pressing the home key changes the value to
[0]
The end key gives a maximum of
[100]
It looks like the screenreader is reading out the percentage value representing the position of the slider within the whole range of values. But this tells me absolutely nothing about the information I actually need: the threshold in decibels.
Let’s see if the other sliders provide more relevant information.
[Noise floor slider 33]
Here’s the noise floor slider. Its current value is 33. I’ll press the Home and End keys to see what the minimum and maximum values are.
[0, 100]
Again, zero and 100. Not very informative. Again, I would want to know the level in decibels for this slider.
The next slider is this one:
[Ratio slider 10]
the ratio slider. This is one of the most important controls in a compressor and we normally expect the value to be expressed as a proper ratio like 2:1. The current value is just 10, it’s not even expressed as a ratio at all and if I press the Home and End keys,
[0, 100]
it is clear that the spoken value is just a percentage of where the slider is within the range. This is particularly useless. I have no idea what 10 or 33 would mean in relation to a ratio.
In some other applications, you hear absolutely no information when you move a slider. Let’s see how we can improve on this using AT Prime.
I'll press control+semicolon to bring AT Prime out of suspension.
[AT Prime is ready]
I’m focused on the first control in the compressor window, which is actually silent, and when I tab, I get this:
[Threshold, horizontal, -6dB]
that said ‘Threshold, horizontal, -6db’. Now that’s exactly what I want to hear. The screenreader is speaking the name of the slider, it’s telling me its orientation on the screen so that I know which arrows to use and finally, it tells me the value of the slider in decibels, not just the percentage position of the slider.
Let’s see what happens when I move the slider and since I know the orientation, I’ll press the left arrow to reduce the value:
[-7dB, -8dB, -9dB, -10dB, 84]
The new value gets spoken by the screenreader. Depending on your own screenreader, you may also hear the percentage value as well but you should at least hear the proper value in decibels.
What AT Prime is doing here is that it has analysed the current window and has found a text object beside the slider and has associated that text object with the slider. It then automatically turns on AT Prime’s feature which monitors objects for changes in text so that when you move the slider, the value of the text changes and AT Prime gets your screenreader to read out the change.
The same applies to the next slider,
[Noise floor, horizontal, -20dB]
where the slider’s value is also rated in decibels.
I’ll tab to the ratio slider and see what we get there.
[Ratio, horizontal, 2:1]
This time, a proper ratio is being spoken. This is very important for the ratio control. If I press the right arrow,
[2.1:1, 2.2:1, 2.3:1]
If I press the page up and page down keys, I can move in slightly larger chunks:
[1.8:1, 2.3:1, 2.8:1, 3.3:1]
in steps of 0.5. Pressing the Home and End keys gives me this:
[1.1:1, 10:1, 100]
the minimum value is 1:1, which is no compression at all and the maximum value is 10:1.
Tabbing to the Attack time slider,
[Attack time, horizontal, 0.10 seconds]
I can now get more sensible feedback as I move the slider:
[0.11 seconds, 0.12 seconds, 0.10 seconds]
I can now hear the actual time information instead of just a number between 0 and 100.
This will make quite a difference when using sliders in Audacity but there could be a problem in having AT Prime getting your screenreader to read this information if your screenreader already does this or part of this for you. Not all screenreaders will handle sliders the same way: some might not manage to speak enough information while others will perform effectively. How can you then tell AT Prime not to announce these values if your screenreader is already reading them?
Unless you are using media or other audio applications, you will only rarely come across a slider and that is why there is nothing in the AT Prime menu which deals specifically with sliders. Until you actually focus on one. Once you are focused on a slider, the Slider Preferences item appears on the AT Prime menu, at the bottom. I’m currently focused on the ratio slider so I’ll display the AT Prime menu and arrow up to find the Slider Preferences item.
[Context menu
Slider Preferences ... P]
Here it is and I’ll press Enter on it.
[Slider Preferences dialog. The object with keyboard focus is a slider which has two text fields associated with it which might not be getting spoken by your screenreader. You can use this dialog to set AT Prime to give keyboard focus to one or both of these associated text fields when tabbing in the application window and to decide whether or not AT Prime should announce any changes in their contents when the slider is moved.]
This message at the top of the Slider Preferences window is important. But what is this about there being two text fields associated with the slider? What you might expect to see in the window is the slider itself with a text field beside it showing the current value of the slider. So why does the message in this window talk about two text fields?
Visibly, there is only one text field beside the slider but AT Prime has picked up the fact that the accessibility API in Windows has exposed two separate text objects associated with the slider and only one of which is visible. The question then is, are these text fields showing identical information and which one should AT Prime use when the slider is moved?
Well, in the case of the sliders in the compressor window, the two text fields for each slider show slightly different information. By default, AT Prime speaks only information only from the second text field. However, one of the things you can do in the Slider Preferences window is to change that if you think that speaking changes in the other text field would be better.
Not only that, the Slider Preferences window also lets you control whether you should be able to tab to either of these text fields or to both of them.
When I tab in the Slider Preferences window, the first field I come to is the name of the slider itself.
[Name of slider:, edit read-only, alt+N, selected, Ratio]
You can’t change the contents of this field but at least you will be able to use your arrow keys to read through the name for clarity.
When I tab to the next control:
[Contents of text field 1, edit read-only, alt 1, selected, Ratio 2:1]
I find that this tells me about the first text field which AT Prime believes is associated with the slider. This text field includes the name of the slider as well as the current ratio value but when I tab to the next control:
[Contents of text field 2, edit read-only, alt 2, selected, 2:1]
this reports that the second text field for the slider only has the ratio value. Since I find that my screenreader even without AT Prime was reading the name of the slider (Ratio), I would not want the screenreader to keep reading the name of the slider every time I change the value , so I’m happy in this case that the second text field’s changes are being spoken by default instead of the first one's. However, there might be some sliders in other windows and other applications where I might want the first text field’s changes to be spoken instead of the second and the Slider Preferences window lets you control this behaviour.
The next control I can tab to is a list where I can determine whether I should be able to tab to either of these text fields, to both of them or to neither.
[Give keyboard focus when tabbing to:, combo box, Neither, collapsed, alt G]
The default setting here is ‘neither’ I’ll move up and down the options in the list:
[Both text fields
Text field 2 only
Text field 1 only
Text field 2 only
Both text fields
Neither]
but I’ll keep the selection on ‘neither’. as I was happy just tabbing to the sliders and I don’t want to have to tab to the text fields which display the changes in the values.
[Announce any changes in the text field when the slider is moved:, combo box, Text field 2 only, collapsed, alt A]
This next control in Slider Preferences is the one where you choose whether AT Prime should get your screenreader to announce changes in values of either of the text fields. As I mentioned before, the default is set to speak changes in text field 2 but you can change that if you want. Here are the options in the list:
[Do not speak changes
Text field 2 only
Text field 1 only
Text field 2 only]
But I’ll leave it set to speak changes in text field 2.
The next control in Slider Preferences is this checkbox:
[Announce whether the slider is horizontal or vertical, checkbox checked, alt w]
By default, this checkbox will be checked since knowing whether the slider is horizontal or vertical will alert you as to which arrow keys to use. Once you are familiar with the orientation of sliders within a window that you use often, you can turn off this feature to cut down on verbosity if you want.
Finally, there is this checkbox:
[Apply these preferences to all similar sliders in the current application window, checkbox checked, alt p]
This is a very handy option which is checked by default because if it is checked, it means that you only need to set up one slider in any given window and then all the other sliders of the same type in that window will be treated the same by AT Prime. But if you find that one or more sliders behave differently after this, you can always come back to Slider Preferences and change the settings just for that slider.
I’m not going to make any changes to the default settings so I’ll just press Escape to close the Slider Preferences window. But any changes that I do make in Slider Preferences are saved to the server so that they will be loaded automatically the next time I use Audacity on this or any other computer.
These particular sliders in Audacity are quite unusual in that they have two text fields associated with them and a lot of the time, you will be dealing with sliders that have only one text field that displays the slider’s value. AT Prime will detect this and will show a modified Slider Preferences window which refers to only one text field along with the slider itself.
The Slider Preferences window is not only available when you happen to focus on a slider in an application window. Slider Preferences is also available as an item in the View menu in the Window Inspector when you are focused on a slider in the Window Inspector list.
If you use audio production software, you will be aware that there can be so many kinds of accessibility problems relating to controls in these types of applications. AT Prime does not deal with all of these issues but at least the handling of sliders like these in Audacity will greatly enhance the usability of sliders without having to create special scripts for your screenreader.